In many computer implementations, it is desirable to be able to specify what amount of resources may be consumed by which entities. For example, it may be desirable to specify that a certain group of applications is allowed to consume an X amount of a set of resources, while another group of applications is allowed to consume a Y amount of the resources. This ability to allocate resources to specific entities enables a system administrator to better control how the resources of a system are used. This control may be used in many contexts to achieve a number of desirable results, for example, to prevent certain processes from consuming an inordinate amount of resources, to enforce fairness in resource usage among various entities, to prioritize resource usage among different entities, etc. Current systems allow certain resources to be allocated to certain entities. For example, it is possible to limit the total consumption of shared memory by certain groups of processes. However, the level of control that is possible with current systems is fairly limited.